Ja, kommen wir doch noch mal zu der Überlagerungstechnik zurück und jetzt ein bisschen genauer im Detail
anschauen, wie denn so eine Überlagerungsstruktur eines solchen Programms, was überlagerungsfähige
Bestandteile enthält, denn typischerweise aussieht und wie diese Struktur denn entsteht.
Nun, Programme, die solche Überlagerungen enthalten, sind typischerweise drei geteilt.
Wir haben denn einerseits den sogenannten Hauptspeicher-Residenten-Programmanteil,
das RUT-Programm.
Letztendlich, man kann auch sagen, ist das Hauptprogramm, wovon man aus die Überlagerung
denn startet zu aktivieren im Endeffekt.
Und dann hat man halt einen Bereich, wo denn eben mehrere solche Überlagerungen sich dann
halt befinden können, die dann eben immer zu unterschiedlichen Zeitpunkten im System
den aktiv sein würden.
Und schließlich hat man dann noch eine sogenannte Comment-Section, das ist ein gemeinsamer Datenbereich,
damit dann praktisch Berechnungen, die von einer Überlagerung generiert worden sind,
praktisch Eingabedaten werden können für eine andere Überlagerung, die zu einem späteren
Zeitpunkt dann eingelagert werden sollen.
Das heißt, die werden also den Informationen zwischen gespeichert, die überlagerungsübergreifende
Bedeutung denn sozusagen besitzen.
Nur diese Programmzerlegung findet statt zum Programmierübersetzung oder zum Bindezeitpunkt.
Also gibt es verschiedene Möglichkeiten, die man hat.
Das kann manuell denn sein, wenn man eben den Programmierzeitpunkt zum Beispiel betrachtet,
aber typischerweise automatisiert, wenn man den Übersetzungs- oder den Bindezeitpunkt
denn betrachten kann.
Typischerweise wird man die Anzahl solcher Überlagerungen fest und zwar statisch vorsehen.
Man kann sich das auch vorstellen, dass das ja alle nur aus der Programmanalyse, denn zum
Beispiel halt herauskommt, dass man da nicht eine beliebige Anzahl von solchen überlagerungsfähigen
Bereichen oder Teilen, Bestandteilen in so einem Programm findet, sondern einfach eine
bestimmte maximale Zahl, den letztendlich halt hat.
Also das wird statisch geschehen.
Der dynamische Aspekt ist einfach denn der, wann denn welche Überlagerung denn wirklich
aktiviert wird, wann die denn wirklich eingelagert wird in dem System.
Ein Hinweis ist hier schon zu machen.
Diese Überlagerung, von denen wir hier sprechen, mit dieser Overlay-Technik, die betreffen
immer Teile eines Maschinenprogramms.
Das, was wir typischerweise selbst entwickeln, das sind also nicht Elemente, die mehreren
Programmen gemeinsam sind.
Also hier bezieht man sich denn nicht etwa auf eine Bibliothek, so wie eine Shared Library
oder so eine DLL, wie man sie aus dem Windows-Bereich also kennt, so eine Dynamic Link Library,
das nicht mit diesen Überlagerungsstrukturen, mit der Overlay-Technik bezüglich eines Maschinenprogramms
zu verwechseln.
Also das nochmal als Hinweis.
Nun, hier mal so eine typische Programme- und Adressraumstruktur, die man halt hätte.
Diese Dreiteilung, die man jetzt hier sieht, hier Route-Bereich wäre das Hauptprogramm,
Shared wären die gemeinsamen Daten und hier kommen jetzt hier in dem Fall drei Überlagerungen
unterschiedlicher Größe.
Man hat denn im Vordergrundspeicher, im Hauptspeicher einen Überlagerungsbereich, der letztendlich
nachher die maximale Größe von solchen Überlagerungen vorgibt, wo wir jetzt hier drei verschiedene
Overlays sehen, drei verschiedene Größen im Endeffekt und wir sehen eben, dass da auch
Verschnitt existiert.
Den akzeptiert man halt eben auch.
Das liegt in der Natur der Sache, dass man hat.
Presenters
Zugänglich über
Offener Zugang
Dauer
00:06:46 Min
Aufnahmedatum
2020-07-06
Hochgeladen am
2020-07-06 20:06:31
Sprache
de-DE